#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2024/4/22 10:06
# @File    : canvas_app.py
# @Description : -i http://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn


import cv2, numpy as np

# nuitka

import tkinter as tk
import threading
import time


def update_log(text_widget, log_list):
    """更新日志的线程函数"""
    brisk = cv2.BRISK_create()
    print(brisk)
    while True:
        # 模拟日志更新
        log_list.append(f"Log entry at {time.ctime()}\n")

        # 将新日志添加到Text组件
        text_widget.config(state='normal')  # 设置组件为可编辑状态
        text_widget.insert('end', ''.join(log_list[-10:]))  # 插入最新10条日志
        text_widget.yview('end')  # 滚动到Text组件底部
        text_widget.config(state='disabled')  # 设置组件为不可编辑状态，防止用户修改

        # 休眠一段时间，控制日志更新的频率
        time.sleep(1)


def create_logger_window():
    root = tk.Tk()
    root.title("实时滚动日志记录器")

    # 设置Text组件为黑色背景
    text_widget = tk.Text(root, bg='black', fg='white', wrap='word')
    text_widget.pack(fill='both', expand=True)

    # 初始化日志列表
    log_list = []

    # 创建并启动更新日志的线程
    update_thread = threading.Thread(target=update_log, args=(text_widget, log_list))
    update_thread.start()

    # 运行主循环
    root.mainloop()

    # 等待线程结束（在关闭窗口时）
    update_thread.join()


# 创建并显示日志记录器窗口
create_logger_window()